/**
 * @author rxliuli
 */
/**
 * 监控设备信息管理
 * @author rxliuli
 */
class BaseMonitorDevice {
    /**
     * 构造函数
     * @param {Number} [id] 监控设备 id
     * @param {Number} [houseId] 所在机房ID， 引机房 base_house_Info 表主键
     * @param {String} [houseName] 机房名称
     * @param {String} [deviceName] 监测设备名称
     * @param {String} [hostName] 设备IP或主机名
     * @param {String} [ctrPort] 控制端口
     * @param {String} [adminUser] 管理用户名
     * @param {String} [adminPassword] 管理密码
     * @param {String} [license] 设备授权码
     * @param {String} [transientInput] 瞬时流量进口
     * @param {String} [transientOutput] 瞬时流量出口
     * @param {String} [connectType] 接入方式, 1: 分光， 2：镜像
     * @param {String} [linkStatus] 链路状态, 1: 串接，2：并接，3：故障
     * @param {String} [adminIp] 管理IP地址, 配置管理ip地址，避免被过滤掉
     * @param {String} [filterRule] 配置包过滤规则（页面请让用户下拉框选择，免得输错）， 请输入包过滤规则，评测模式设置为tcp || udp，正式运营可设置为tcp port 80
     * @param {String} [interceptType] 阻断方式, 1：无提示， 2：自定义页面， 3：指定url提示，4：302跳转到指定url
     * @param {String} [interceptContent] 阻断后响应内容, 当阻断方式为            1. 自定义页面：这里填页面内容            2. 指定url提示：url            3. 302跳转到指定url：url
     * @param {...Object} args 其他参数
     */
    constructor({
                    id,
                    houseId,
                    houseName,
                    deviceName,
                    hostName,
                    ctrPort,
                    adminUser,
                    adminPassword,
                    license,
                    transientInput,
                    transientOutput,
                    connectType,
                    linkStatus,
                    adminIp,
                    filterRule,
                    interceptType,
                    interceptContent,
                    ...args
                } = {}) {
        this.id = id
        this.houseId = houseId
        this.houseName = houseName
        this.deviceName = deviceName
        this.hostName = hostName
        this.ctrPort = ctrPort
        this.adminUser = adminUser
        this.adminPassword = adminPassword
        this.license = license
        this.transientInput = transientInput
        this.transientOutput = transientOutput
        this.connectType = connectType
        this.linkStatus = linkStatus
        this.adminIp = adminIp
        this.filterRule = filterRule
        this.interceptType = interceptType
        this.interceptContent = interceptContent
        Object.assign(this, args)
    }
}